<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index07-内置对象</title>
</head>
<body>
<input type="button" value="清除定时器" onclick="clearFun()"/>
<script type="text/javascript">

    // // Number
    // var a = 3.475;
    // console.log(a.toFixed(2));
    // a = 3.4;
    // console.log(a.toFixed(2));
    // console.log(isNaN(9)); // false
    // console.log(isNaN(NaN)); // true
    // console.log(isNaN('10')); // false

    // document.write()——可以向页面输出内容
    // document.write('HelloWorld');

    // String
    // var str = "HelloWorldHello";
    // console.log(str.length);
    // // console.log(str.charAt(5));
    // // console.log(str.indexOf("Hello"));
    // // console.log(str.indexOf("Hello2"));
    // // console.log(str.lastIndexOf("Hello"));
    // // console.log(str.lastIndexOf("Hello2"));
    // // console.log(str.slice(0, 5));
    // // console.log(str);
    // // console.log(str.substring(0, 5));
    // console.log(str.concat("JavaScript ", "Hello"));
    // var str = "Hello World JS";
    // var arr = str.split(" ");
    // console.log(arr);
    // var str = "abc|bcd|cde|def";
    // console.log(str.split("|"));

    // var str = "HelloWorldHello";
    // // console.log(str.replace("Hello", "JS"));
    // // console.log(str.replaceAll("Hello", "JS"));
    // console.log(str.toUpperCase());
    // console.log(str.toLowerCase());

    // console.log(Boolean(1));
    // console.log(Boolean(0));
    // console.log(Boolean('h'));
    // console.log(Boolean(''));
    // console.log(Boolean(null));
    // console.log(Boolean({}));

    // console.log(Math.PI);
    // console.log(Math.ceil(10.5));// 11
    // console.log(Math.floor(10.5));// 10
    // console.log(Math.round(123.956)); // 124
    // console.log(Math.abs(10));
    // console.log(Math.abs(-10));
    // console.log(Math.abs(-0));
    // console.log(Math.abs(+0));
    // console.log(Math.random()); // 0-1
    // console.log(Math.sqrt(9)); // 3
    // console.log(Math.pow(3, 3));// 27

    // Date
    // var now = new Date();
    // console.log(now);
    // // console.log(now.getTime());
    // var result = formatDate(new Date());
    // console.log(result);

    // 格式化日期
    function formatDate(d) {
        var yyyy = d.getFullYear();
        var MM = d.getMonth() + 1 < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1;
        var dd = d.getDate() < 10 ? "0" + d.getDate() : d.getDate();
        var HH = d.getHours() < 10 ? "0" + d.getHours() : d.getHours()
        var mm = d.getMinutes() < 10 ? "0" + d.getMinutes() : d.getMinutes()
        var ss = d.getSeconds() < 10 ? "0" + d.getSeconds() : d.getSeconds()
        return yyyy + "-" + MM + "-" + dd + " " + HH + ":" + mm + ":" + ss;
    }

    function getNow(){
        var now = new Date();
        console.log(formatDate(now));
    }

    // 测试使用延迟定时器
    // 第一个参数是指定的执行的函数
    // 第二个参数延迟的时间，但是毫秒
    // setTimeout("getNow()", 3000);
    // setTimeout(getNow, 3000);
    // var timerId = setTimeout(function(){
    //     var now = new Date();
    //     console.log(formatDate(now));
    // }, 3000);
    // // console.log(timerId);
    //
    // // 清除延迟性定时器
    // function clearFun(){
    //     clearTimeout(timerId);
    // }

    // 测试间隔性定时器
    // 第一个参数指定执行函数
    // 第二个参数是指定间隔时间，单位是毫秒
    // getNow();
    // var timerId = setInterval(getNow, 1000);
    //
    // // 清除间隔性定时器
    // function clearFun(){
    //     clearInterval(timerId);
    // }

    // 数组的基本使用
    var arr = [10, 20, 30, 40];
    // for (var i = 0; i < arr.length; i++) {
    //     console.log(arr[i]);
    // }

    // 数组遍历还有一种方式,数组对象中有个函数叫forEach(回调函数)
    // 回调函数有三个参数:1.遍历的元素本身，2.遍历的元素的下标,3.数组本身
    // var sum = 0;
    // arr.forEach(function(value, index, array){
    //     // console.log(value, index);
    //     sum += value;
    // });
    // console.log(sum);
    // console.log(arr.indexOf(30));
    // console.log(arr.indexOf(300));
    // 入栈
    // console.log(arr.push(50)); // push返回值是入栈后数组的长度
    // console.log(arr);
    // 出栈
    // console.log(arr.pop()); // pop()返回值是出栈的元素
    // console.log(arr);
    // console.log(arr.pop());
    // console.log(arr);
    // console.log(arr.pop());
    // console.log(arr);
    // console.log(arr.pop());
    // console.log(arr);
    // console.log(arr.pop());
    // console.log(arr);
    // console.log(arr.pop());
    // console.log(arr);
    var a = arr.pop();
    while (a != undefined) {
        console.log(a);
        a = arr.pop();
    }

    // var arr = [10, 20, 30, 40];
    // console.log(arr.unshift(3)); // unshift返回值是加完之后的长度
    // console.log(arr);
    // console.log(arr.shift());
    // console.log(arr);
    // console.log(arr.shift());
    // console.log(arr);
    // console.log(arr.slice(0, 2));
    // console.log(arr);
    // console.log(arr.concat(50, 60));
    // console.log(arr);
    // console.log(arr.join("|"));
    // console.log(arr.reverse());

    // sort()排序——自然排序
    // var arr = [1, 10, 2, 20, 5, 6, 4]; // 1,2,4,5,6,10,20
    // console.log(arr.sort());
    // var arr2 = arr.sort(function(a, b){
    //     if (a > b) {
    //         return 1;
    //     } else if(a < b){
    //         return -1;
    //     } else {
    //         return 0;
    //     }
    // });
    // console.log(arr2);
    // var arr2 = arr.sort(function(a, b){
    //     if (a > b) {
    //         return -1;
    //     } else if(a < b){
    //         return 1;
    //     } else {
    //         return 0;
    //     }
    // });
    // console.log(arr2);

    // var arr = [1, 10, 2, 20, 5, 6, 4];
    // // console.log(arr.splice(3, 2));
    // // console.log(arr);
    // console.log(arr.splice(3, 2, 100, 200));
    // console.log(arr);
</script>
</body>
</html>